var http = require('http');

var a = 1;
var lyby = {
    percentage : function (numOrstr) {
        //小数转百分比
        if(!numOrstr){
            numOrstr = 0;
        }
        return parseFloat((parseFloat(numOrstr) * 100).toPrecision(12)) + '%';
    },
    jsonParse: function (v) {
        return v ? JSON.parse(decodeURI(v)) : {};
    },
    apply: function (o, c, defaults) {
        if (defaults) {
            sjApp.apply(o, defaults);
        }
        if (o && c && typeof c == 'object') {
            for (var p in c) {
                o[p] = c[p];
            }
        }
        return o;
    },
    applyIf: function (o, c, defaults) {
        if (defaults) {
            this.apply(o, defaults);
        }
        if (o && c && typeof c == 'object') {
            for (var p in c) {
                if (typeof o[p] == "undefined")o[p] = c[p];
            }
        }
        return o;
    }, md5: function (md5Str) {
        var crypto = require('crypto');
        var content = md5Str || new Date().getTime();
        var md5 = crypto.createHash('md5');
        md5.update(content + '');
        return md5.digest('hex');  //MD5值是5f4dcc3b5aa765d61d8327deb882cf99
    }, resFilter: function (err, res, opt) {
        //公共处理下发返回结果,状态码翻译的地方
        opt = opt || {};
        var codeJ = {
            200: '下发成功了',
            500: '失败了'
        };
        var sc = 200;
        if (err) {
            sc = 500;
        }
        opt.status && (sc = opt.status);
        res.set('Content-Type', 'application/json');
        if (opt.result) {
            if (opt.result instanceof Object) {
                res.status(sc).send(JSON.stringify(opt.result));
            } else {
                res.status(sc).send(opt.result);
            }
        } else {
            res.status(sc).send(JSON.stringify({
                msg: codeJ[sc] || ''
            }));
        }
    },
    error: function (msg) {
        if (msg instanceof Error) {
            msg = msg.name + '::' + msg.message;
        }
        require('./log4js.js').error(msg);
    },
    info: function (msg) {
        require('./log4js.js').info(msg);
    },
    page_size: function (opt) {
        if (!opt.page) {
            return {};
        }
        var size = parseInt(opt.size) || 20;
        var page = (parseInt(opt.page) - 1) * size;
        return {
            offset: page,
            limit: size
        }
    },
    getRandomNum : function (Min,Max){
        var Range = Max - Min;
        var Rand = Math.random();
        return(Min + Math.round(Rand * Range));
    },
    isWeixin: function (agent) {
        if (agent.indexOf('MicroMessenger') != -1) {
            return true;
        }
        return false;
    },
    getReactHtml: function (options) {
        if (!options.jsxUrl) {
            return '';
        }
        var React = require('react');
        var ReactDOMServer = require('react-dom/server');
        // require('babel-register');
        // require('node-jsx').install({
        //     extension: '.jsx'
        // });
        var el = require(options.jsxUrl);
        var html = ReactDOMServer.renderToStaticMarkup(React.createElement('div', {
            id: 'content', dangerouslySetInnerHTML: {
                __html: ReactDOMServer.renderToString(React.createElement(el, {load: true}))
            }
        }));
        return html;
    },
    getNewReactHtml: function (options) {
        // if (!options.jsxUrl) {
        //     return '';
        // }
        // // var React = require('react');
        // var ReactDOMServer = require('react-dom/server');
        // // require('node-jsx').install({
        // //     extension: '.jsx'
        // // });
        // // require('babel-register')({presets: ['es2015', 'react', 'stage-0']})
        // // var store = require(options.jsxPath + 'store/HomeStore');
        //
        // // store.restList();
        //
        // var html;
        // if(options.serverRender === false){
        //     html = ReactDOMServer.renderToStaticMarkup(
        //         (
        //             <div id="site">
        //             </div>
        //         )
        //     )
        // }else{
        //     var MainCmp = require(options.jsxUrl);
        //     html = ReactDOMServer.renderToStaticMarkup(
        //         (
        //             <div id="site" dangerouslySetInnerHTML={{
        //                 __html: renderToString(
        //                     <MainCmp />
        //                 )
        //             }}>
        //             </div>
        //         )
        //     )
        // }
        // // let html = renderToString(
        // //     <div id="content">
        // //         <MainCmp />
        // //     </div>
        // // )
        // // var html = ReactDOMServer.renderToStaticMarkup(React.createElement('div', {
        // //     id: 'content', dangerouslySetInnerHTML: {
        // //         __html: ReactDOMServer.renderToString(React.createElement(el, {load: true}))
        // //     }
        // // }));
        // //
        // // var NavBarEl = require(options.jsxPath + 'components/common/navbar.jsx');
        // // let navBarhtml = renderToString(
        // //     <div id="mainNav" className="main-nav-new">
        // //         <NavBarEl />
        // //     </div>
        // // )
        // // var navBarhtml = ReactDOMServer.renderToStaticMarkup(React.createElement('div', {
        // //     className : 'main-nav-new',
        // //     id: 'mainNav', dangerouslySetInnerHTML: {
        // //         __html: ReactDOMServer.renderToString(React.createElement(navBarEl, {load: true}))
        // //     }
        // // }));
        // // console.log(navBarhtml + html)
        // return html;
    },
    //size大小字节
    formatFileSize: function (size) {
        if(!size) {
            return '';
        }
        var filesize = '';
        if (size / 1024 / 1024 > 1) {
            filesize = Math.round(size / 1024 / 1024 * 100) / 100 + 'MB';
        }
        else if (size / 1024 > 1) {
            filesize = Math.round(size / 1024 * 100) / 100 + 'KB';
        }
        else {
            filesize = size + 'B';
        }
        return filesize
    }
};
module.exports = lyby;